.\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3
.
.TH "PIKAUR" "1" "May 2020" "" "Pikaur manual"
.
.P
AUR helper with minimal dependencies\. Review PKGBUILDs all in once, next build them all without user interaction\.
.
.P
Inspired by \fBpacaur\fR, \fByaourt\fR and \fByay\fR\.
.
.P
Instead of trying to be smarter than pacman (by using \fB\-\-nodeps\fR, \fB\-\-force\fR, \fB\-\-ask\fR, \fB\-\-noconfirm\fR and so) it just interactively tells pacman what to do\. If pacman asks some unexpected question, the user will be just able to answer it manually\.
.
.P
Notable features:
.
.IP "\(bu" 4
build local PKGBUILDs with AUR deps (\fB\-P\fR/\fB\-\-pkgbuild\fR)
.
.IP "\(bu" 4
retrieve PKGBUILDs from AUR and ABS (\fB\-G\fR/\fB\-\-getpkgbuild\fR)
.
.IP "\(bu" 4
interactively handle common build problems (like untrusted GPG key or checksum mismatch, wrong architecture)
.
.IP "\(bu" 4
using systemd dynamic users \fIhttp://0pointer\.net/blog/dynamic\-users\-with\-systemd\.html\fR if building packages as root user
.
.IP "\(bu" 4
show unread Arch news \fIhttps://www\.archlinux\.org/news/\fR before sysupgrade
.
.IP "\(bu" 4
[m]anual package selection in \fIinstall prompt\fR using text editor (ignore unwanted updates or select package provider)
.
.IP "\(bu" 4
show AUR package diff and review PKGBUILD and \.install files
.
.IP "\(bu" 4
\fIupgrade\fR \fB\-git\fR, \fB\-svn\fR and other dev packages
.
.IP "\(bu" 4
AUR package names in shell completion (bash, fish, zsh)
.
.IP "\(bu" 4
quickly search&install package by \fBpikaur <search\-query>\fR
.
.IP "" 0
.
.P
The following pacman operations are extended with AUR capabilities:
.
.IP "\(bu" 4
\fB\-S\fR (build AUR packages, \fB\-\-needed\fR, \fB\-\-ignore\fR and \fB\-\-noconfirm\fR are supported as in pacman, other args are just bypassed to it)
.
.IP "\(bu" 4
\fB\-Sw\fR (build AUR packages but don\'t install)
.
.IP "\(bu" 4
\fB\-Ss\fR (search or list all AUR packages, \fB\-q\fR also supported)
.
.IP "\(bu" 4
\fB\-Si\fR (package info)
.
.IP "\(bu" 4
\fB\-Su\fR / \fB\-Syu\fR (sysupgrade)
.
.IP "\(bu" 4
\fB\-Sc\fR / \fB\-Scc\fR (build dir/built packages cache clean)
.
.IP "\(bu" 4
\fB\-Qu\fR (query upgradeable, \fB\-q\fR supported)
.
.IP "" 0
.
.P
Also see \fBpikaur \-Sh\fR, \fB\-Qh\fR, \fB\-Ph\fR and \fB\-Gh\fR for pikaur\-specific flags\.
.
.P
Pikaur wraps all the pacman options accurately except for \fB\-Syu\fR which is being split into \fB\-Sy\fR (to refresh package list first) and \fB\-Su\fR (to install upgrades after user confirmed the package list or altered it via [M]anual package selection)\.
.
.IP "\(bu" 4
\fIInstallation\fR
.
.IP "\(bu" 4
\fIRun without installation\fR
.
.IP "\(bu" 4
\fIConfig file\fR
.
.IP "\(bu" 4
\fIDirectories\fR
.
.IP "\(bu" 4
\fIFAQ\fR
.
.IP "\(bu" 4
\fIContributing\fR
.
.IP "\(bu" 4
.
.IP "\(bu" 4
\fITranslations\fR
.
.IP "" 0

.
.IP "\(bu" 4
.
.IP "\(bu" 4
\fIDocumentation\fR
.
.IP "" 0

.
.IP "\(bu" 4
\fIAuthors\fR
.
.IP "" 0
.
.SH "Installation"
.
.nf

sudo pacman \-S \-\-needed base\-devel git
git clone https://aur\.archlinux\.org/pikaur\.git
cd pikaur
makepkg \-fsri
.
.fi
.
.
.SH "Run without installation"
.
.nf

git clone https://github\.com/actionless/pikaur\.git
cd pikaur
python3 \./pikaur\.py \-S AUR_PACKAGE_NAME
.
.fi
.
.SH "Configuration"
~/\.config/pikaur\.conf
.
.SS "[sync]"
.
.SS "DevelPkgsExpiration (default: \-1)"
When doing sysupgrade, count all devel (\-git, \-svn, \-bzr, \-hg, \-cvs) packages older than N days as being upgradeable\. \-1 disables this\. 0 means always upgrade\. Passing \fB\-\-devel\fR argument will override this option to 0\.
.
.SS "AlwaysShowPkgOrigin (default: no)"
When installing new packages, show their repository name, even if they are coming from one of the official Arch Linux repositories\.
.
.SS "UpgradeSorting (default: versiondiff)"
When upgrading packages, sort them by \fBversiondiff\fR, \fBpkgname\fR or \fBrepo\fR\.
.
.SS "ShowDownloadSize (default: no)"
When installing repository packages, show their download size\.
.
.SS "IgnoreOutofdateAURUpgrades (default: no)"
When doing sysupgrade ignore AUR packages which have \fBoutofdate\fR mark\.
.
.SS "[build]"
.
.SS "KeepBuildDir (default: no)"
Don\'t remove \fB~/\.cache/pikaur/build/${PACKAGE_NAME}\fR directory between the builds\. Will be overridden by \fB\-k/\-\-keepbuild\fR flag\.
.
.SS "KeepDevBuildDir (default: yes)"
When building dev packages (\fB\-git\fR, \fB\-svn\fR, etc), don\'t remove \fB~/\.cache/pikaur/build/${PACKAGE_NAME}\fR directory between the builds\. \fBNo\fR value will be overridden by \fBKeepBuildDir\fR option and \fB\-k/\-\-keepbuild\fR flag\.
.
.SS "KeepBuildDeps (default: no)"
Don\'t remove build dependencies between and after the builds\. Will be overridden by \fB\-\-keepbuilddeps\fR flag\.
.
.SS "SkipFailedBuild (default: no)"
Always skip the build if it fails and don\'t show recovery prompt\.
.
.SS "AlwaysUseDynamicUsers (default: no)"
Always isolate the build using systemd dynamic users\. Will be overridden by \fB\-\-dynamic\-users\fR flag\.
.
.SS "[review]"
.
.SS "DontEditByDefault (default: no)"
Always default to no when prompting to edit PKGBUILD and install files\.
.
.SS "NoEdit (default: no)"
Don\'t prompt to edit PKGBUILD and install files\. Will be overridden by \fB\-\-noedit\fR and \fB\-\-edit\fR flags\.
.
.SS "NoDiff (default: no)"
Don\'t prompt to show the build files diff\. Will be overridden by \fB\-\-nodiff\fR flag\.
.
.SS "GitDiffArgs (default: \-\-ignore\-space\-change,\-\-ignore\-all\-space)"
Flags to be passed to \fBgit diff\fR command when reviewing build files\. Should be separated by commas (\fB,\fR)\.
.
.SS "DiffPager (default: auto)"
Wherever to use \fBless\fR pager when viewing AUR packages diff\. Choices are \fBalways\fR, \fBauto\fR or \fBnever\fR\.
.
.SS "HideDiffFiles (default: \.SRCINFO)"
Hide \fBgit diff\fR for file paths, separated by commas (\fB,\fR)\.
.
.SS "[colors]"
Terminal colors, from 0 to 15:
.
.SS "Version (default: 10)"
.
.SS "VersionDiffOld (default: 11)"
.
.SS "VersionDiffNew (default: 9)"
.
.SS "[ui]"
.
.SS "RequireEnterConfirm (default: yes)"
Require enter key to be pressed when answering questions\.
.
.SS "PrintCommands (default: no)"
Print each command which pikaur is currently spawning\.
.
.SS "ReverseSearchSorting (default: no)"
Reverse search results of the commands like \fBpikaur \-Ss <query>\fR or \fBpikaur <query>\fR\.
.
.SS "[misc]"
.
.SS "PacmanPath (default: pacman)"
Path to pacman executable\.
.
.SS "SudoLoopInterval (default: 59)"
Interval in seconds in which \fBsudo\fR command will be spawned in the background to avoid asking for sudo password more than once (\fB\-1\fR to disable sudo loop at all)\.
.
.SS "PrivilegeEscalationTool (default: sudo)"
A tool used to escalate user privileges\. If using \fBdoas\fR then \fBpersistent\fR option is required in \fBdoas\.conf\fR\. For example: \fBpermit persist :wheel\fR Currently supported options are \fBsudo\fR and \fBdoas\fR\.
.
.SS "[network]"
.
.SS "AurUrl (default: https://aur\.archlinux\.org)"
AUR Host, useful for users in China to use \fBhttps://aur\.tuna\.tsinghua\.edu\.cn\fR\.
.
.SS "NewsUrl (default: https://www\.archlinux\.org/feeds/news/)"
Arch Linux News URL, useful for users of Parabola or other Arch derivatives\.
.
.SS "Socks5Proxy (default: )"
Specify a socks5 proxy which is used to get AUR package information\.
.
.P
The format is \fB[host[:port]]\fR, and the default port is 1080\. PySocks module (\fBpython\-pysocks\fR package) should be installed in order to use this option\.
.
.P
Note that any downloads by \fBpacman\fR, \fBgit\fR or \fBmakepkg\fR will NOT use this proxy\. If that\'s needed, setting proxy options in their own config files will take effect (such as \fB~/\.gitconfig\fR, \fB~/\.curlrc\fR)\.
.
.SH "Directories"
.
.nf

~/\.cache/pikaur/
├── build/  # build directory (removed after successful build)
├── pkg/  # built packages directory
~/\.config/pikaur\.conf  # config file
~/\.local/share/pikaur/
└── aur_repos/  # keep aur repos there; show diff when updating
    └── last_installed\.txt  # aur repo hash of last successfully installed package
.
.fi
.
.SH "FAQ"
.
.SS "How to upgrade all the dev (\-git) packages at once?"
\fBpikaur \-Sua \-\-devel \-\-needed\fR
.
.P
(\fB\-\-needed\fR option will make sure what the same package version won\'t be rebuilt again and \fB\-a/\-\-aur\fR will ensure what only AUR packages will be upgraded)
.
.SS "How to override default source directory, build directory or built package destination?"
Set \fBSRCDEST\fR, \fBBUILDDIR\fR or \fBPKGDEST\fR accordingly in \fBmakepkg\.conf\fR\.
.
.P
For more info see \fBmakepkg\fR documentation\.
.
.SS "How to clean old or uninstalled AUR packages in ~/\.cache/pikaur/pkg?"
This can be achieved using a pacman\-hook (paccache\-clear\.hook)\. For both official and AUR packages, the last 3 packages are kept if the package is still installed, and one package is kept if the package is uninstalled\.
.
.IP "" 4
.
.nf

Exec = /usr/bin/env bash \-c "/usr/bin/paccache \-vrk3; /usr/bin/paccache \-vruk1; /usr/bin/paccache \-\-cachedir PATH/TO/\.cache/pikaur/pkg/ \-vrk3; /usr/bin/paccache \-\-cachedir PATH/TO/\.cache/pikaur/pkg/ \-vruk1"
.
.fi
.
.IP "" 0
.
.P
Change the numbers, and you are good to go\.
.
.SS "How to see upgrade list without syncing the database? (like 'checkupdates' tool from pacman)"
Actually use \fBcheckupdates\fR tool to check the repo updates and use pikaur only for AUR (\fB\-a\fR/\fB\-\-aur\fR switch):
.
.IP "" 4
.
.nf

checkupdates ; pikaur \-Qua 2>/dev/null
.
.fi
.
.IP "" 0
.
.SS "Pikaur slow when running it as root user (or via sudo)"
If you find the command takes a long time to initialize, make sure to periodically clear your cache: \fBpikaur \-Scc\fR\. Root pikaur is using SystemD Dynamic Users to isolate build process from the root, and it takes some time to change the owner of build cache to dynamic temporary user\.
.
.SH "Contributing"
.
.SS "Code"
You can start from this list of issues \fIhttps://github\.com/actionless/pikaur/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22\fR\. Grep\-ing \fB@TODO\fR comments also useful if you\'re itching to write something\.
.
.SS "Translations"
To start working on a new language, say \'uk\' (Ukrainian), add it to the \fBMakefile\fR \fBLANGS\fR variable and run \fBmake\fR\. Then translate \fBlocale/uk\.po\fR using your favorite PO editor\. Run \fBmake\fR every time the Python code strings change or the \fB\.po\fR is modified\.
.
.SS "Documentation"
After updating readme, please install \fBruby\-ronn\fR and run \fBmake man\fR\.
.
.SH "Authors"
To see the list of authors, use this command inside pikaur git repository directory:
.
.IP "" 4
.
.nf

git log \-\-pretty=tformat:"%an <%ae>" | sort \-u
.
.fi
.
.IP "" 0
.
.SS "Special thanks"
@AladW (aurutils \fIhttps://github\.com/AladW/aurutils\fR), @morganamilo (yay \fIhttps://github\.com/Jguer/yay\fR) during the early stages of Pikaur development\. And all the other issue contributors \fIhttps://github\.com/actionless/pikaur/issues?utf8=%E2%9C%93&q=is%3Aissue+\-author%3Aactionless\fR for helping in triaging the bugs and clearing up feature requirements\.
